iT邦幫忙

2025 iThome 鐵人賽

DAY 1
0
生成式 AI

用 Node.js 打造生成式 AI 應用:從 Prompt 到 Agent 開發實戰系列 第 1

Day 01 - 前言:系列簡介與開發環境準備

  • 分享至 

  • xImage
  •  

這幾年,AI 工具如雨後春筍般湧現,從 ChatGPT、Claude 到 Gemini,以及各種生成式平台,無論是當成新奇工具體驗,還是正式導入產品流程,幾乎每位工程師都已經接觸過。然而,真正讓人感到困惑的,往往不是模型本身的能力,而是——到底該從哪裡開始?

即便是熟悉 API 串接與系統設計的開發者,面對大型語言模型(LLM)這類帶有語意推理能力的工具時,依然會遇到許多新挑戰。例如:模型該怎麼整合進既有系統?資料應該如何準備與提供?流程又該如何封裝才能維持可擴展性?

因此,本系列將從實務開發角度出發,透過 iThome 鐵人賽 30 天的挑戰,帶來一條循序漸進的學習路徑:從 OpenAI API 基礎串接開始,逐步深入提示工程(Prompt Engineering)、RAG(Retrieval-Augmented Generation)、AI Agent 流程設計,到本地 LLM 部署,最終建立出一套模組化、可維護且具有擴展性的 AI 開發架構。

從概念到實作,掌握 AI 應用開發的關鍵能力

在規劃這個系列時,我希望將自己在學習與實作 AI 應用的經驗,整理成一條有脈絡的學習路徑。過去常常遇到的情況是,概念理解起來不難,但要真正落地到專案時卻容易卡關。因此,我在撰寫時不只著重於工具的介紹,而是設計了一個從基礎到完整應用的循序流程,協助把抽象的想法轉換成可執行的實作。

在內容安排上,我會先從 OpenAI API 的基礎應用開始,帶領大家逐步掌握模型的使用方法與提示設計技巧。接著學習如何運用 LangChain 開發框架,將零散功能組織成可維護且擴充的流程;再進一步探討 RAG 的實際應用,讓 AI 能結合並檢索外部資料源;隨後透過 LangGraph 的範例實作,展示如何打造具備推理能力且支持人機協作的 AI Agent;最後分享 本地模型部署 的實務經驗,並探討如何在確保資料安全的同時,滿足系統靈活性的需求。

透過這樣的安排,我希望把過去摸索累積的經驗,轉化成一套可重複應用、可持續維護的開發思維與方法,讓這個系列不只是學習記錄,也能成為實務開發的參考。

為什麼選擇 Node.js?

目前市面上的 AI 教學與應用案例大多以 Python 為主,原因在於其生態成熟、工具齊全。但在這個系列中,我選擇以 Node.js 作為主要開發平台,主要考量如下:

  • 熟悉語言、快速上手:對多數 Web 開發工程師而言,JavaScript/TypeScript 已是日常開發的核心語言。選擇 Node.js 能直接沿用既有知識與工具,避免語言切換帶來的學習與維護成本,讓開發者能更專注在應用邏輯與系統整合。

  • 擅長整合 API 與外部服務:AI 應用不僅涉及模型呼叫,往往還需要串接外部平台、第三方資料來源,甚至建立 Webhook、CLI 工具或排程任務。Node.js 在這方面有豐富套件支援,加上非同步開發模式,能快速構建互動型與延展性強的 AI 工具。

  • LangChain.js 生態日益完整:雖然 LangChain 起步於 Python,但 LangChain.js 的發展極為快速,如今已涵蓋 Prompt 模組化、記憶系統、向量資料庫串接、Tool Calling、Agent 模型等核心功能,對大多數應用場景而言已相當成熟,且持續活躍維護中。

  • 自然融入現有系統架構:許多企業與團隊的應用系統本就使用 Node.js 作為 API 層或 BFF(Backend for Frontend)。在這樣的基礎上導入 AI 能力,不僅能降低整合摩擦,也方便部署與維護。無論是內部知識檢索、客服機器人,或智慧化操作介面,都能順暢接軌現有開發流程。

總結來說,本系列的目的在於讓 熟悉 Node.js 的開發者,能以最小的學習成本切入 AI 應用開發。不必轉換語言,也無需深入機器學習理論,只要掌握 API 串接、Prompt 設計與系統封裝,就能逐步建構出可落地、具實務價值的 AI 工具與服務。

系列文規劃與內容重點

接下來的內容會依照不同主題逐步展開,協助讀者從基礎知識到完整應用邏輯建立:

  1. OpenAI API 基礎應用篇:從零開始認識 OpenAI API,學習如何透過 Node.js 串接 GPT 模型,並掌握提示工程、回應風格調控以及工具呼叫等功能,奠定開發 AI 應用的基礎。

  2. LangChain 核心應用篇:進一步探索 LangChain 這個 LLM 框架,從 Prompt 模板設計、輸出解析、流程鏈組合到工具呼叫,一步步建立可重複使用且模組化的 AI 應用程式邏輯。

  3. RAG 實戰應用篇:深入 RAG 檢索增強生成的設計模式,學習如何載入、分割文件,使用嵌入模型與向量資料庫建立知識庫,並打造具備檢索與問答能力的 AI 系統。

  4. LangGraph AI Agent 實作篇:進入更高階的應用層次,認識 AI Agent 的自主決策能力,並透過 LangGraph 打造具備推理、協作、人機互動與記憶的 Agent,讓 AI 不再只是回應工具,而能成為完整的智慧系統。

  5. 本地模型部署篇:探討在本地端運行 LLM 的需求與方法,包含為什麼要考慮本地部署、如何使用 Ollama 建立環境,以及如何結合雲端與本地模型,打造混合式架構以兼顧靈活性與安全性。

整個過程不只是功能實作,更希望建立一套可重複應用、可持續維護的開發思維與流程。不論是實作個人專案,或是在公司內部導入 AI 應用,都能有明確的起點與方法,並逐步累積成一套可實戰的 AI 開發工具鏈。

開始之前:建立你的開發環境

在正式進入主題之前,請先準備好你的開發環境,確保後續能順利進行實作環節。

安裝 Node.js

Node.js 是我們使用的開發平台,它是基於 Chrome V8 引擎的 JavaScript 執行環境。安裝 Node.js 最簡單的方式,就是從 Node.js 官方網站下載。

https://ithelp.ithome.com.tw/upload/images/20250901/20150150Pn2opMyxsR.png

網站會依照你目前的作業系統環境提供適合下載的版本,一般來說,選擇 LTS (Long Term Support) 版本下載即可,這是官方長期支援的穩定版本,如果你想體驗 Node.js 最新的功能,可以選擇下載最新版。

另一種安裝方式是透過 NVM (Node Version Manager)。顧名思義,NVM 是一款 Node.js 的版本管理工具,能讓你同時安裝多個版本,並在不同版本之間自由切換,非常適合需要在不同專案間切換環境的開發者。目前 NVM 也支援 Windows,相關安裝方式可參考官方 Repo

安裝 Visual Studio Code

Visual Studio Code 是一款跨平台的免費原始碼編輯器,提供了許多豐富的 延伸模組 (Extensions),使用者可以安裝這些工具來提升開發生產力。

https://ithelp.ithome.com.tw/upload/images/20250901/201501507NU9IRJFxn.png

你可以直接從官方網站下載並安裝 Visual Studio Code。當然,這並非唯一選擇,若你習慣使用 Vim、Emacs,或是支援 AI 的現代開發工具如 Windsurf、Cursor,也完全沒有問題,選擇你最熟悉的工具即可。

建立 Node.js 專案與 Typescript 開發環境

雖然還沒進入正式的實作階段,但後續會經常需要建立新專案。因此,這裡先示範如何快速建立一個最小化的 Node.js 專案架構,並搭配 TypeScript 開發環境。透過這個步驟,你可以熟悉專案結構、工具設定與執行流程,後續實作時即可直接套用。本系列接下來的文章中,將不再重複說明專案建立的細節。

建立資料夾並初始化專案

首先,打開終端機(Terminal),建立一個新的資料夾,並透過 npm 初始化一個名為 my-project 的 Node.js 專案:

mkdir my-project && cd my-project
npm init -y

執行後會在資料夾內產生一個 package.json 檔案,用來記錄專案所需的套件與指令腳本。

-y 代表自動套用預設值快速建立 package.json。如果想自訂名稱、版本或作者資訊,可以省略 -y,依提示逐步輸入。

安裝 TypeScript 與開發工具

接著安裝開發 TypeScript 所需的工具:

npm install --save-dev typescript ts-node @types/node

這些套件的功能說明如下:

  • typescript:TypeScript 編譯器,負責將 .ts 檔案轉換成瀏覽器或 Node.js 能理解的 JavaScript。
  • ts-node:可直接執行 TypeScript 程式,開發階段不需先編譯就能快速測試。
  • @types/node:提供 Node.js API 的 TypeScript 型別提示與檢查,例如 fspath 等模組。

這些是「開發用」套件,因此使用 --save-dev 安裝。

建立 TypeScript 設定檔

執行以下指令會建立預設的 TypeScript 設定檔:

npx tsc --init

開啟 tsconfig.json,將內容調整如下:

{
  "compilerOptions": {
    "target": "es2020",
    "module": "commonjs",
    "outDir": "./dist",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "skipLibCheck": true
  },
  "include": ["src"],
  "exclude": ["node_modules"]
}

這樣設定後,未來我們的程式碼都會放在 src/ 資料夾中,編譯後的 JavaScript 會輸出到 dist/

建立資料夾與主程式入口

TypeScript 專案通常會將原始碼放在 src/ 資料夾內,我們來建立它:

mkdir src
touch src/index.ts

這邊的 index.ts 就是我們之後要寫主程式的地方。

設定常用執行指令

打開 package.json,在 "scripts" 欄位加入以下內容:

"scripts": {
  "start": "node dist/index.js",
  "dev": "ts-node src/index.ts",
  "build": "tsc"
}

這樣就能透過簡單的指令執行你的專案:

  • npm run dev:直接執行 .ts 程式(不需事先編譯)。
  • npm run build:編譯 TypeScript 程式為 JavaScript。
  • npm start:執行編譯後的 JavaScript 程式(dist/index.js)。

建議在開發階段用 dev,上線或測試階段用 buildstart

加入 .gitignore 檔案

如果你有使用 Git 作版本控制,建議加入 .gitignore 避免把不必要的檔案加入版本庫:

node_modules/
dist/
.env
  • node_modules/:相依套件目錄,內容可透過安裝依賴重新產生,無需上傳。
  • dist/:編譯輸出的檔案,通常由原始碼重新建置即可。
  • .env:環境變數設定檔,會存放 API 金鑰等敏感資訊,必須避免被公開。

測試開發流程是否正常

現在我們還沒寫任何邏輯,不過可以測試開發指令是否正常運作。

請先在 src/index.ts 寫入簡單程式碼:

console.log('Hello World');

然後依序執行:

npm run dev       # 執行 src/index.ts(開發階段)
npm run build     # 編譯 TypeScript
npm start         # 執行編譯後的 JavaScript 程式

你應該會看到終端機輸出:

Hello World!

如果上述流程都能正常運作,就代表我們的 TypeScript 開發環境已經準備好了!

小結

AI 看起來充滿潛力,但真正落地仍仰賴穩健的工程實作。本系列將從工程師角度出發,聚焦實務技術與開發流程,陪你逐步建立起一套完整的 AI 應用基礎。

如果你也想親手打造一個 AI 工具,邀請你一起從明天開始,每天前進一點點。30 天之後,你會發現,自己已經擁有一套完整的 AI 系統架構,能應用於真實場景中。

我們明天見!


下一篇
Day 02 - 認識 OpenAI API:模型、功能、使用限制
系列文
用 Node.js 打造生成式 AI 應用:從 Prompt 到 Agent 開發實戰2
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言